/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * Nuevo_producto.java
 *
 * Created on 15/06/2009, 06:25:53 PM
 */

package Compras;
import Control.Conexion;
import java.util.Vector;
import javax.swing.JOptionPane;
import java.awt.Color;
/**
 *
 * @author GAMA
 */
public class Nuevo_producto extends javax.swing.JPanel {
Conexion c;
int bandera;
Mantenimiento_productos frmProducto;

    private String vcodigo;
    private String vdescripcion;
    private String vcategoria;
    private int stock;
    private float precio_venta;
    private Integer codigo_usuario_auditoria=0;
   
    
    /** Creates new form Nuevo_producto */
    public Nuevo_producto(Mantenimiento_productos frmProducto, int bandera, Integer codigo_usuario_auditoria) {
       initComponents();
       this.codigo_usuario_auditoria=codigo_usuario_auditoria;
       cargar_categorias();
       this.frmProducto=frmProducto;
       this.bandera=bandera;

    }
public void cargar_categorias(){
    c=new Conexion();
    Vector <String> vcategoria;
   vcategoria=c.cargar_categorias_combobox();
   for(int i=0;i<vcategoria.size();i++){
       cmbcategoria.addItem(vcategoria.get(i));
   }
}
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jTabbedPane1 = new javax.swing.JTabbedPane();
        jPanel2 = new javax.swing.JPanel();
        cmbcategoria = new javax.swing.JComboBox();
        jLabel3 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        descripcion = new javax.swing.JTextField();
        codigo = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        precio = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();

        jPanel2.setLayout(null);

        cmbcategoria.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cmbcategoriaActionPerformed(evt);
            }
        });
        jPanel2.add(cmbcategoria);
        cmbcategoria.setBounds(150, 120, 250, 20);

        jLabel3.setText("Categoria:");
        jPanel2.add(jLabel3);
        jLabel3.setBounds(80, 120, 70, 20);

        jLabel6.setText("Descripcion:");
        jPanel2.add(jLabel6);
        jLabel6.setBounds(70, 80, 80, 20);

        descripcion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                descripcionActionPerformed(evt);
            }
        });
        jPanel2.add(descripcion);
        descripcion.setBounds(150, 80, 250, 20);
        jPanel2.add(codigo);
        codigo.setBounds(150, 40, 110, 20);

        jLabel2.setText("Codigo:");
        jPanel2.add(jLabel2);
        jLabel2.setBounds(90, 40, 70, 20);

        jLabel5.setText("Precio de Venta:");
        jPanel2.add(jLabel5);
        jLabel5.setBounds(50, 160, 100, 20);

        precio.addCaretListener(new javax.swing.event.CaretListener() {
            public void caretUpdate(javax.swing.event.CaretEvent evt) {
                precioCaretUpdate(evt);
            }
        });
        jPanel2.add(precio);
        precio.setBounds(150, 160, 110, 20);

        jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Guardar16.gif"))); // NOI18N
        jButton1.setMnemonic('g');
        jButton1.setText("Guardar");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        jPanel2.add(jButton1);
        jButton1.setBounds(100, 210, 110, 25);

        jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/Cancelar16.gif"))); // NOI18N
        jButton2.setMnemonic('c');
        jButton2.setText("Cancelar");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });
        jPanel2.add(jButton2);
        jButton2.setBounds(250, 210, 100, 25);

        jLabel1.setText("nuevos soles");
        jPanel2.add(jLabel1);
        jLabel1.setBounds(270, 160, 100, 20);

        jTabbedPane1.addTab("Nuevo Producto", jPanel2);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(162, Short.MAX_VALUE)
                .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 460, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(139, 139, 139))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 281, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(108, Short.MAX_VALUE))
        );
    }// </editor-fold>//GEN-END:initComponents

    private void cmbcategoriaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmbcategoriaActionPerformed
        // TODO add your handling code here:
}//GEN-LAST:event_cmbcategoriaActionPerformed

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        // TODO add your handling code here:
        String cod=codigo.getText();
        String desc=descripcion.getText();
      
        boolean valido=true;
        float prec=0;

        if(cod.length()==0||desc.length()==0 || precio.getText().length()==0){
        JOptionPane.showMessageDialog(this,"Complete los campos solicitados","Información",JOptionPane.WARNING_MESSAGE);
        valido=false;
        }else{
        try{
            prec=Float.parseFloat(precio.getText());
            if(precio.getForeground()==Color.RED){
                //no hay excepción
                JOptionPane.showMessageDialog(this,"El precio no debe ser negativo","Error",JOptionPane.ERROR_MESSAGE);
                valido=false;
            }
        }catch(Exception e){
            JOptionPane.showMessageDialog(this,"Formato de datos erróneo","Error",JOptionPane.ERROR_MESSAGE);
            valido=false;
        }
        }
        if(valido){

          
            c=new Conexion();
            if(!c.existe_producto(cod)){
                int cat=c.retornar_codigo_categoria(cmbcategoria.getSelectedItem().toString());
                if(bandera==1){
                    this.registrar_producto(cod, desc, cat, prec);
                }else{
                    this.modificar_producto(cod, desc, cat, prec);
                }
                this.frmProducto.getPanelContenedorOperario().removeAll();

            this.frmProducto.getPanelContenedorOperario().add(frmProducto);
            this.frmProducto.setVisible(false);
            this.frmProducto.setVisible(true);

            frmProducto.inicializar_tabla_productos();
            limpiar_campos();
            }else{
                JOptionPane.showMessageDialog(this,"El codigo de producto ingresado ya existe","Información",JOptionPane.WARNING_MESSAGE);
                codigo.setText("");
            }
            
        }
    }//GEN-LAST:event_jButton1ActionPerformed

    private void descripcionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_descripcionActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_descripcionActionPerformed

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
        // TODO add your handling code here:
                this.frmProducto.getPanelContenedorOperario().removeAll();
        this.frmProducto.getPanelContenedorOperario().add(frmProducto);
        this.frmProducto.setVisible(false);
        this.frmProducto.setVisible(true);
    }//GEN-LAST:event_jButton2ActionPerformed

    private void precioCaretUpdate(javax.swing.event.CaretEvent evt) {//GEN-FIRST:event_precioCaretUpdate
        // TODO add your handling code here:

          String texto=this.precio.getText();
          char [] elemento=texto.toCharArray();
          boolean valido=true;

          for(int i=0;i<elemento.length;i++){
              if(Character.isLetter(elemento[i])){
                  valido=false;
              }
              if(elemento[i]=='-'){
                  valido=false;
              }
          }

          try{
            Float.parseFloat(texto);
          }catch(Exception e){
             valido=false;
          }
          if(!valido){
              precio.setForeground(Color.RED);
          }else{
              precio.setForeground(Color.BLACK);
          }
    }//GEN-LAST:event_precioCaretUpdate

public void registrar_producto(String cod, String desc, int cat, float prec){

    try{
    c.registrar_productos(codigo_usuario_auditoria,cod, desc, prec, cat);
    JOptionPane.showMessageDialog(this,"Se ha registrado con éxito","Información",JOptionPane.INFORMATION_MESSAGE);
    }catch(Exception e){
        System.out.println("error");
    }
}
public void deshabilitar_codigo(boolean deshabilitado){
    this.codigo.setEditable(!deshabilitado);
}

public void modificar_producto(String cod, String desc, int cat, float prec){

    
    try{
    c.modificar_producto(codigo_usuario_auditoria,cod, desc, cat, prec);

    JOptionPane.showMessageDialog(this,"Se ha modificado con éxito","Información",JOptionPane.INFORMATION_MESSAGE);
    }catch(Exception e){
        System.out.println("error");

    }

}
    // Variables declaration - do not modify//GEN-BEGIN:variables
    public javax.swing.JComboBox cmbcategoria;
    private javax.swing.JTextField codigo;
    private javax.swing.JTextField descripcion;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTextField precio;
    // End of variables declaration//GEN-END:variables

    public void limpiar_campos(){
        this.codigo.setText("");
        this.descripcion.setText("");
        this.cmbcategoria.setSelectedIndex(0);
        this.precio.setText("");

    }
    /**
     * @return the stock
     */
    public int getStock() {
        return stock;
    }

    /**
     * @param stock the stock to set
     */
    public void setStock(int stock) {
        this.stock = stock;

    }

    /**
     * @return the precio_venta
     */
    public float getPrecio_venta() {
        return precio_venta;
    }

    /**
     * @param precio_venta the precio_venta to set
     */
    public void setPrecio_venta(float precio_venta) {
        this.precio_venta = precio_venta;
        precio.setText(""+precio_venta);
    }

    /**
     * @return the vcodigo
     */
    public String getVcodigo() {
        return vcodigo;
    }

    /**
     * @param vcodigo the vcodigo to set
     */
    public void setVcodigo(String vcodigo) {
        this.vcodigo = vcodigo;
        codigo.setText(vcodigo);
    }

    /**
     * @return the vdescripcion
     */
    public String getVdescripcion() {
        return vdescripcion;
    }

    /**
     * @param vdescripcion the vdescripcion to set
     */
    public void setVdescripcion(String vdescripcion) {
        this.vdescripcion = vdescripcion;
        descripcion.setText(vdescripcion);
    }

    /**
     * @return the vcategoria
     */
    public String getVcategoria() {
        return vcategoria;
    }

    /**
     * @param vcategoria the vcategoria to set
     */
    public void setVcategoria(String vcategoria) {
        this.vcategoria = vcategoria;
        cmbcategoria.setSelectedItem(vcategoria);
    }

}
